Extensible Markup Language (XML) is a standardized text format that can be used for transmitting structured data to web applications. XML offers significant advantages over Hypertext Markup Language (HTML) in the transmission of structured data.
In general, XML differs from HTML in at least three different ways. First, in contrast to HTML, users of XML may define additional tag and attribute names at will. Second, users of XML may nest document structures to any level of complexity. Third, optional descriptors of grammar may be added to XML to allow for the structural validation of documents. In general, XML is more powerful, is easier to implement and easier to understand.
However, XML is not backward compatible with existing HTML documents, but documents conforming to the W3C HTML 3.2 specification can be easily converted to XML, as can documents conforming to ISO 8879 (SGML).
A transformation process can be applied to a XML document to convert it from one XML format to another. Commonly the description of the transformation is contained with a second document, a “stylesheet”. The transformation operates on one or more input documents and produces one or more output documents.
While existing methods of processing XML documents work relatively well, the ability to nest to any level of complexity and the optional description of grammar has resulted in processing structures that consume large amounts of memory and are, consequently, relatively slow and inefficient. Because of the importance of structured data, a need exists for a method and apparatus that is specifically structured to the needs of processing XML documents.